With the growth of information technology (IT) industries, companies have increasing needs to manage processes such as their business processes as easily as possible based on covering activities in company processes by software. For example, a company may investigate business process models for tasks that may be replaced or emulated by computer programs. Such business process models may include scalable software fragments that may be reusable and easy to access. For example, Web services may be used to cover as many parts of a process model as possible. For example, software developers may investigate models generated by business experts using a Service Oriented Design principle.
By using loosely coupled web services, such as supported by Service Oriented Architecture (SOA) designs, developers may design software which is flexible and reusable, and which may be easily adapted to varying user needs within short time frames and without great effort in term of costs and manpower.
Many users such as businesses and companies use business process models to represent behavior that is used to solve specific problems that may occur repeatedly or on regular basis. Thus, a problem may be decomposed into smaller sub-problems or atoms, each fulfilling a task that may help to achieve an overall goal. An example business process model may include modeled activities that may be located relative to each other in the model via directed edges. This technique may be combined with a Service Oriented Architecture design by using web services to fulfill the specific tasks of a process model that may provide the desired outcome of a process, for example, via an executable process model. Changes in process models or requirement changes may then be realized by adding new processes, or extending functionality of existing processes.
Software developers currently may be asked to transform business process models into executable programs, wherein composed web services may replace a stationary approach, in which a program may have previously been developed to run on only one server, not reusing or enacting networked services. However, the software developer may experience some difficulties in correctly transforming a model designed by a business expert into an executable business process. For example, a software developer may have a completely different view of the approach, lacking background knowledge that may be helpful to perform a desired task, whereas a business process model designer may not model a formally correct process model, wherein all activities may be reached and wherein executions of the process model may not reach unintended halts. Generally, a software developer may lack business knowledge and a business expert may lack a proper IT background, which may lead to process models that may be inefficient in execution, and which may lead to semantically or formally erroneous process model execution approaches. Thus, it may be desirable to automatically transform a business process model generated by a business expert into an executable model, accounting for all information given by the modeler.
However, it may be difficult to determine whether serial or parallel execution of activities included in such process models will produce valid results. Thus, it may be desirable to provide techniques for validating process models.